/*!
 * Copyright (C) 2004-2009 Giant Interective Group, Inc. All rights reserved.
 * 版权所有 2004-2009 上海巨人网络科技有限公司
 * 
 * version #version, #date by Fuchun
 * Depends on jQuery 1.3.x
 * Depends on giant.core 2.0.x
 * Depends on ui.component 2.0.x
 */

/**
 * @class 工作选择器工具类。
 */
var WorkExp = window.WorkExp = function() {};

(function($) {

var tradeWrap = null, btnCloseTrade = null, tradeList = null;

var postTWrap = null, btnClosePostT = null, postTList = null,
    hidePostId = null;

/**
 * @class 工作选择器中的行业选择器工具类。
 */
WorkExp.Trade = function() {};
/**
 * @class 工作选择器中的职位分类选择器工具类。
 */
WorkExp.PostType = function() {};
/**
 * @class 工作选择器中的职位选择器工具类。
 */
WorkExp.Post = function() {};

/**
 * 初始化行业选择器各控件。
 */
WorkExp.Trade.init = function() {
	tradeWrap = tradeWrap == null ? $('#div_trades') : tradeWrap;
	btnCloseTrade = btnCloseTrade == null ? $('#btn_close_trade') : btnCloseTrade;
	tradeList = tradeList == null ? $('#ul_trade_list') : tradeList;
};

/**
 * 关闭行业选择器。
 */
WorkExp.Trade.close = function() {
	if(B.msie && B.version < 7)
	    giant.ui.removeGloomyBackground();
	tradeWrap.hide('fast');
};
/**
 * 选择行业。
 * 
 * @param {HTMLAlinkElement} o 链接对象。
 * @param {Number} id 行业Id。
 * @param {String} name 行业名称。
 */
WorkExp.Trade.select = function(o, id, name) {
	WorkExp.Trade.close();
	if(WorkExp.Trade.current)
	    $(WorkExp.Trade.current).removeClass('current');
	WorkExp.Trade.current = o;
	$(o).addClass('current');
	WorkExp.Trade.tradeId.val(id);
	WorkExp.Trade.tradeName.val(name);
};

/**
 * 显示行业选择界面。
 */
WorkExp.Trade.show = function(sTradeId, sTradeNameId) {
	if(!WorkExp.Trade.tradeId)
	    WorkExp.Trade.tradeId = $(sTradeId);
	if(!WorkExp.Trade.tradeName)
	    WorkExp.Trade.tradeName = $(sTradeNameId);
	WorkExp.Trade.tradeName.blur();
	if(B.msie && B.version < 7)
	    giant.ui.buildGloomyBackground();
	tradeWrap.css('display', 'block');
	giant.ui.location(tradeWrap);
};

/**
 * 初始化职位分类选择器的各控件。
 */
WorkExp.PostType.init = function() {
    postTWrap = postTWrap == null ? $('#div_posts') : postTWrap;
    btnClosePostT = btnClosePostT == null ? $('#btn_close_post') : btnClosePostT;
    postTList = postTList == null ? $('#ul_postt_list') : postTList;
    hidePostId = hidePostId == null ? $('#hide_post_id') : hidePostId;
};

/**
 * 关闭职位分类选择器。
 */
WorkExp.PostType.close = function() {
	if(B.msie && B.version < 7)
        giant.ui.removeGloomyBackground();
    postTWrap.hide('fast');
};

/**
 * 选择职位分类。
 * 
 * @param {HTMLAlinkElement} o 链接对象。
 * @param {Number} id 职位分类Id。
 * @param {String} name 职位分类名称。
 */
WorkExp.PostType.select = function(o, id, name) {
	WorkExp.PostType.close();
	if(WorkExp.PostType.current)
	    $(WorkExp.PostType.current).removeClass('current');
	WorkExp.PostType.current = o;
	$(o).addClass('current');
    WorkExp.PostType.postTypeId.val(id);
    WorkExp.PostType.postType.val(name);
    if(hidePostId.val() != id) {
        GiantAjax.responseJson({
            crossdomain: true,
            url: '/commons/ajaxLoadPosition.do',
            params: { ptId: id },
            success: function(jdatas) {
                var opts = [];
                for(var i = 0, len = jdatas.length; i < len; i++) {
                    opts[i] = {
                        text: jdatas[i].name,
                        value: jdatas[i].id
                    };
                }
                var cmb = WorkExp.PostType.postIdSelector.getJComboBox();
                var first = cmb.find('option:first');
                first = {
                	text: first[0].text,
                	value: first[0].value
                };
                WorkExp.PostType.postIdSelector.remove();
                WorkExp.PostType.postIdSelector.addItem(first);
                WorkExp.PostType.postIdSelector.addItem(opts);
                hidePostId.val(id);
            }
        });
    }
};
/**
 * 显示职位分类选择界面。
 */
WorkExp.PostType.show = function(sPostTypeId, sPostTypeNameId, sPostId) {
    if(!WorkExp.PostType.postTypeId)
        WorkExp.PostType.postTypeId = $(sPostTypeId);
    if(!WorkExp.PostType.postType)
        WorkExp.PostType.postType = $(sPostTypeNameId);
    if(!WorkExp.PostType.postIdSelector)
        WorkExp.PostType.postIdSelector = $.combobox({
            id: sPostId
        });
    WorkExp.PostType.postType.blur();
    if(B.msie && B.version < 7)
        giant.ui.buildGloomyBackground();
    postTWrap.css('display', 'block');
    giant.ui.location(postTWrap);
};

/**
 * 职位选择下拉框的onchange事件函数。
 * @param {HTMLSelectElement} o 下拉框对象
 */
WorkExp.Post.postChange = function(o) {
	var postName = $('#txt_work_postname');
	var sPostName = o.options[o.selectedIndex].text;
	if(sPostName == '其他') {
		postName.css('display', 'inline');
		postName.focus();
	} else {
		postName.css('display', 'none');
		postName.val(sPostName);
	}
};

$(document).ready(function() {
	WorkExp.Trade.init();
	WorkExp.PostType.init();
});

})(jQuery);